package com.xxg.renrenorder.dao.bean;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.core.mapping.FieldType;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * 商品信息
 *
 * @author xxg
 * @date 2020/11/16
 */
@Data
@ApiModel(value = "ProductInfo", description = "商品信息参数")
public class ProductInfo {
    @ApiModelProperty(value = "商品的店Id", hidden = true)
    private Integer shopId;
    @ApiModelProperty("店铺名称")
    private String shopName;
    @ApiModelProperty("分类")
    private List<Integer> categories;
    @NotNull(message = "skuId不能为null")
    @ApiModelProperty(value = "商品库存ID", required = true)
    private Integer skuId;
    @NotNull(message = "spuId不能为null")
    @ApiModelProperty(value = "标注商品ID", required = true)
    private Integer spuId;
    @ApiModelProperty("spu主图")
    private String spuThumb;
    @ApiModelProperty("spu轮播图")
    private String spuThumbAll;
    @ApiModelProperty("sku主图")
    private String skuThumb;
    @ApiModelProperty(value = "标准商品名称", hidden = true)
    private String spuName;
    @ApiModelProperty(value = "库存商品名称（规格）", hidden = true)
    private String skuName;
    @ApiModelProperty("spu副标题")
    private String spuSubTitle;
    @ApiModelProperty("spu简称")
    private String spuShortTitle;
    @ApiModelProperty(value = "sku零售价格", hidden = true)
    @Field(targetType = FieldType.DECIMAL128)
    private BigDecimal skuPrice;
    @NotNull(message = "number不能为null")
    @ApiModelProperty(value = "购买数量", required = true)
    private Integer number;
    @ApiModelProperty(value = "实际支付金额/需要支付金额", hidden = true)
    @Field(targetType = FieldType.DECIMAL128)
    private BigDecimal pay;
    @ApiModelProperty(value = "商品备注信息")
    private String remark;
    @ApiModelProperty(value = "售后状态，null-无售后", hidden = true)
    private Integer afterSalesStatus;
    @ApiModelProperty(value = "该商品是否已评价，true-已评价，false-未评价,null-未评价", hidden = true)
    private Boolean hasComment;
    @ApiModelProperty(value = "该商品评价信息", hidden = true)
    private Comment comment;
    @ApiModelProperty(value = "已经退款的件数", hidden = true)
    private Integer returnNumber;
    @ApiModelProperty(value = "正在申请的退款的件数", hidden = true)
    private Integer applyReturnNumber;
    @ApiModelProperty(value = "是否属于带货商品")
    private Boolean isCarryProduct;
}
